{"ID":0,"Name":"MySQL TRIGGER для удаления parent","Content":"\u003cp\u003eСегодня столкнулся с необходимостью сделать удаление строк parentid из второй таблицы, не имея возможности сделать прямой запрос DELETE FROM tbl_name WHERE parentid=value.\u003c/p\u003e\u003cbr\u003e\n\u003cp\u003e Выходов из ситуации оказалось два - \u003cstrong\u003eforeign key\u003c/strong\u003e и \u003cstrong\u003eMySQL TRIGGER\u003c/strong\u003e поскольку не с тем, не с другим мне никогда сталкиваться не доводилось я начал с просмотра документации. \n\u003c/p\u003e\n\u003cbr/\u003e\n\u003cp\u003e\nВ мануалке (chm) по \u003cstrong\u003eMySQL 5\u003c/strong\u003e я  ничего не нашел, пришлось лезть в гугл, в надеждах что-нибудь отыскать. \u003cstrong\u003eForeign key\u003c/strong\u003e как оказалось поддерживают только InnoDB таблички, поэтому вникать в его описание не я стал, переключившись на триггер. Созданный по мануалу пример разумеется не подошел, пришлось  снова лезть искать необходимый мне пример с описаниями. В итоге решение было найдено и выглядит оно так:\u003c/p\u003e\n\u003cbr/\u003e\n\u003cbr/\u003e\n\u003cpre name=\"code\" class=\"sql\"\u003e\nDELIMITER |\nCREATE TRIGGER `childs_slayer` BEFORE DELETE ON `customers` \nFOR EACH ROW BEGIN \nDELETE FROM `customers_person` WHERE parent=OLD.id;\nEND;\n\u003c/pre\u003e\n\u003cbr/\u003e\n\u003cbr/\u003e\n\u003cp\u003e\nГде \u003ci\u003eсhilds_slayer\u003c/i\u003e - название триггера\u003cbr\u003e\n\u003ci\u003eBEFORE DELETE\u003c/i\u003e - действие до удаления (как вариант время  AFTER и действия INSERT,DELETE, REPLACE)\u003cbr\u003e\n\u003ci\u003ecustomers\u003c/i\u003e - название \"родительской\" таблицы \u003cbr\u003e\n\u003ci\u003eOLD.id\u003c/i\u003e - старый in \"родительской\" таблицы  (как вариант NEW.id для INSERT или  OLD.customer_name для значения поля customer name)\u003c/p\u003e\u003cbr/\u003e","Tag":"mysql","Url":"/art/5/mysql-trigger-example.aspx","ShortDescription":"","Alias":"","Visible":0,"Title":"MYSQL TRIGGER DELETE","Key":"","Description":"сделать удаление строк parentid триггером"}
